import org.junit.jupiter.api.Test;

public class _07_整数反转 {
    @Test
    void test(){
        System.out.println(reverse(1463847412));
    }
    public int reverse(int x) {

        long n=0;
        while (x!=0){
            //每次取x的最后一位数，称为反转的第一位数，所以n每次要*10,然后加上最后一位的值
            n=n*10+x%10;
            //将x变为原来的十分之一，因为拿掉了一位
            x=x/10;
        }
        return (int)n==n?(int)n:0;


//        if (x==0){
//            return 0;
//        }else if (x<0){
//            int abs = Math.abs(x);
//            String s = String.valueOf(abs);
//            StringBuilder stringBuilder = new StringBuilder(s);
//            String s1 = stringBuilder.reverse().toString();
//            Long i = Long.valueOf(s1);
//            if (Math.abs(i)>Math.pow(2,31)){
//                return 0;
//            }
//            int j= Math.toIntExact(i);
//            return j*-1;
//        }else {
//            String s = String.valueOf(x);
//            StringBuilder stringBuilder = new StringBuilder(s);
//            String s1 = stringBuilder.reverse().toString();
//            Long i = Long.valueOf(s1);
//            if (i>Math.pow(2,31)-1){
//                return 0;
//            }else {
//                int j= Math.toIntExact(i);
//                return j;
//            }
//        }
    }
}
